Adders are widely used in multimedia subsystems such as cameras and graphics processors as addition is an important function for many digital signal processing operations. For example, digital filtering can be implemented using repetitive steps of multiply-add operations. Other mathematical operations such as subtraction, sign inversion, multiplication, division, comparison, square-root, logarithmic, hyperbolic, trigonometric may also include various steps of additions.
Conventional circuit synthesizing software tools commonly focus on optimizing area and/or speed instead of power, especially for adders and multipliers. For example, a conventional circuit synthesizing software tool may synthesize an adder using a ripple carry adder (RCA). The software tool may optimize processing delays by replacing the RCA with a carry-skip adder, a carry-look-ahead adder, or a carry-select adder to meet timing constraints. However, carry-skip adders, carry-look-ahead adders, and carry-select adders typically use more logics than RCAs, and thus consume more power than RCAs. While some circuit synthesizing software tools may provide some controls for power consumption, the controls may not be effective or sufficient to meet power constraints for certain applications. The high power consumption may not be a great concern when the synthesized circuit is used in a host system or host machine, such as a personal computer (PC). However, mobile devices that are used for multimedia applications may be limited by power. Accordingly, improved systems and techniques for synthesizing adders that can balance speed, power, and/or area may be desirable.